#!/bin/sh
cd ${0%/*} || exit 1    # Run from this directory

# Parse arguments for library compilation
. $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments


# Get SCOTCH_VERSION, SCOTCH_ARCH_PATH
if settings=`$WM_PROJECT_DIR/bin/foamEtcFile config.sh/scotch`
then
    . $settings
    echo "    using SCOTCH_ARCH_PATH=$SCOTCH_ARCH_PATH"
else
    echo
    echo "    Error: no config.sh/scotch settings"
    echo
fi


# Define how to create an mpi-versioned library of $targetType
# compile into qualified directory
# use sentinel file to handle version changes
wmakeMpiLib()
{
    for libName
    do
    (
        WM_OPTIONS="$WM_OPTIONS$WM_MPLIB"
        whichmpi="$WM_PROJECT_DIR/platforms/$WM_OPTIONS/src/parallel/decompose/$libName/using:$FOAM_MPI"
        whichscotch="$WM_PROJECT_DIR/platforms/$WM_OPTIONS/src/parallel/decompose/$libName/using:$SCOTCH_VERSION"
        [ -e "$whichmpi" -a -e "$whichscotch" ] || wclean $libName
        echo "wmake $targetType $libName"
        wmake $targetType $libName
        touch "$whichmpi" "$whichscotch"
    )
    done
}

if [ -n "$SCOTCH_ARCH_PATH" ]
then
    wmake $targetType scotchDecomp

    if [ -n "$WM_MPLIB" ] && [ -d "$FOAM_LIBBIN/$FOAM_MPI" ]
    then
        wmakeMpiLib ptscotchDecomp
    fi
else
    echo "    skipping scotchDecomp (ptscotchDecomp)"
fi


# Try and build metisDecomp (has own logic)
(cd metisDecomp && ./Allwmake $targetType)

wmake $targetType decompositionMethods
wmake $targetType decompose


#------------------------------------------------------------------------------
